#include <stdio.h>
#include <stdlib.h>

int main() {
    int **a;
    a = (int**)malloc(3 * sizeof(int *)); // 申请3行
    for (int i = 0; i < 3; i++) {
        a[i] = (int*)malloc(4 * sizeof(int)); // 申请4列
    }
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            a[i][j] = i * 4 + j + 1; // 初始化数组
        }
    }
    // free
    for (int i = 0; i < 3; i++) {
        free(a[i]); // 释放每一行
    }
    free(a); // 释放行指针数组
    printf("test\n");
    return 0;
}